# encoding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from jpype import *


def show(content, title=None, is_list=False):
    if title is not None:
        print('-' * 40)
        print(title)
        print('-' * 40)

    if is_list:
        print(','.join(content))
    else:
        print(content)

    print('=' * 60)

if __name__ == '__main__':
    startJVM(
        '/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/MacOS/libjli.dylib',
        '-Djava.class.path=/Users/axu/code/axuProject/Learn/learn_python/00.fixtures/02.hanlp/hanlp-portable-1.3.1.jar',
        '-Xms1g',
        '-Xmx1g'
    )

    # HanLP = JClass('com.hankcs.hanlp.HanLP')
    content = '''
    华龙网12月30日9时49分讯（首席记者 徐焱）今（30）日上午，重庆市四届人大常委会第三十二次会议上，审议通过了一批人事任免事项。
    经表决，决定接受黄奇帆辞去重庆市人民政府市长职务的请求。
    黄奇帆。资料图
    黄奇帆简历
    1968.09——1974.09，上海焦化厂焦炉车间工人；
    1974.09——1977.09，上海机械学院仪器仪表系自动化仪表专业学习；
    1977.09——1983.07，上海焦化厂设备科技术员、助理工程师、工程师；
    1983.07——1983.12，上海焦化厂副厂长；
    1983.12——1984.04，中共上海市委整党办公室联络员；
    1984.04——1987.01，上海市经委综合规划室副主任；
    1987.01——1990.06，上海市经济信息中心主任（副局级）；
    1990.06——1993.01，上海市浦东开发办公室副主任；
    1993.01——1994.09，上海市浦东新区管委会副主任，1993.12正局级（1988.12—1993.09上海市第六届青年联合会副主席）；
    1994.09——1995.04，中共上海市委副秘书长兼市委研究室主任；
    1995.04——1995.07，中共上海市委副秘书长（1994.10—1995.05借调中央办公厅工作）；
    1995.07——1996.03，中共上海市委副秘书长，市政府副秘书长；
    1996.03——1998.04，中共上海市委副秘书长，市政府副秘书长，市体改委副主任；
    1998.04——2001.10，上海市政府副秘书长，市经委主任，市工业工作党委副书记（1998.02—1999.12中欧国际工商学院高层管理人员工商管理硕士课程班学习，获工商管理硕士学位）；
    2001.10——2002.05，重庆市政府副市长、党组成员；
    2002.05——2009.11，中共重庆市委常委，市政府副市长、党组成员，2002.10市政府党组副书记，2003.07兼重庆行政学院院长，2003.09兼市国资委党委书记；
    2009.11——2010.01，中共重庆市委副书记，市政府副市长、党组副书记，市政府代理市长、党组书记，重庆行政学院院长（兼），市国资委党委书记（兼）；
    2010.01——2010.03，中共重庆市委副书记，市政府市长、党组书记，重庆行政学院院长（兼），市国资委党委书记（兼）；
    2010.03——2011.02，国务院三峡工程建设委员会副主任，重庆市委副书记，市政府市长、党组书记，重庆行政学院院长（兼），市国资委党委书记（兼）；
    2011.02——至今，国务院三峡工程建设委员会副主任，中共重庆市委副书记，市政府市长、党组书记；
    中国共产党第十七大、十八大代表，十八届中央委员，九届、十届、十一届全国人大代表，重庆市二次、三次、四次党代会代表，二届、三届、四届重庆市委委员，重庆市二届、三届、四届人大代表。
    责任编辑：张冬
    文章关键词： 黄奇帆 人事任免
    我要反馈 保存网页
    '''

    # term_list = HanLP.segment(content)
    # show(term_list, '命名实体识别与词性标注')
    # show(HanLP.extractPhrase(content, 20), '短语提取')

    # result = {}
    # for term in term_list:
    #     word = term.word  # 词
    #     nature = term.nature.toString()  # 词性

    #     if not result.has_key(nature):
    #         result[nature] = [word]
    #     else:
    #         result[nature].append(word)

    # show(result.keys())
    # show(result['nr'], '人名')
    # for nr in result['nr']:
    #     print(nr)

    content = '''
    座席:您好您好这个银行给您服务您好
    客户:啊昨天今天又发一个就是
    客户:除了你的个人贷款截至二零一六年六月二十六日不是按照
    客户:借款合同约定足额还款
    客户:对
    客户:异常成立七分公司去记录交三十在你的信誉报告的
    客户:但是电话是零四六七二三幺三三个七幺
    客户:但是我不知道现在招生取消他说那可不是停机了
    客户:经济状态
    座席:农机状态那先生您是
    座席:有无办理过贷款是吗
    客户:我办理公积金昨天我已经打过电话了那你们说的如果他还发的信息你这你这个就是
    客户:哎这个信息记录下来然后跟你们在打个电话
    座席:那先生您是
    座席:办理过公积金贷款是吧
    客户:您这个
    座席:这个
    座席:这个短信是九五五六六给您发送的是吗
    客户:嗯嗯对
    座席:上面没有具体分行的这个没有说是哪个分行给您发的吗
    客户:每个月没有
    座席:那这个短信那请问您是说这个短信是不属于民的是吧
    客户:我也不知道我这始终给我发
    客户:我昨天商银行银行给我吗你不是
    客户:不是他投诉你们我一说这个他说呃你们别着急别上是来因为他他以后到啊
    客户:酒后了吧唧的嗯
    座席:嗯那先生您看
    座席:您是办理过这个公积金的贷款是吧
    客户:我办理过个问题太快了但是我我已经改那个东西已经
    客户:银行告诉他们了我说那
    客户:我去我是四月份那个什么我从四月份开始我说
    客户:如果是是不用他说了你不用九千不用来一左右是
    客户:到时候这个钱直接转一金假如说今年四月份
    客户:我们直接去找的你对银行信用卡就卡直接就转到你你那个是那个就是换卡直接就能保换换过去了
    客户:那你还款就是意思
    座席:四个就是如果您带的是公积金贷款的话
    座席:您把钱存到银行卡里
    座席:然后这个公积金管理中心会给银行出这个
    座席:扣款的
    座席:扣款的这个任务然后
    座席:银行接到通知他就会自动扣款的
    座席:您看您这个嗯是的
    座席:您看您这个
    座席:啊
    座席:就是跟公积金贷款关联的这个卡
    座席:是在黑龙江办的这种普通的借记卡吗
    客户:对原来我这公司是我的工资
    座席:嗯
    座席:那先生您别着急您这个卡有没有开通短信就是电话银行服务呢
    客户:如果有开通没有是吗钱两天吧有一个就是说你们那个就是在继续正常有一个我想问你
    客户:开业就是那个有个中国银行
    座席:嗯
    客户:中国银行呢他说那个也可以等一下在那里头客户
    客户:也可以你那当那个银行卡使用
    客户:不是那那结果说是免费办理的
    客户:他这个有三个就三个月是
    客户:就三个信息是短信业务
    客户:昨天太拿收益就是百公司得开怎么两千一百块钱存的那里头了
    座席:嗯嗯
    座席:嗯嗯
    座席:说的是
    客户:之前的时候多块钱提交我一打还是还是停止状态
    座席:二三幺幺三七幺什么这个
    座席:这个它后面流的这个电话号码是这个是吗
    客户:他说如有疑问请问就是去那个三零四六七二三幺三三七幺我一把
    客户:亲戚
    座席:您好他这个短信就是说您的贷款逾期了是吧
    客户:对你个人贷款截止二零一六年就是说
    客户:就是这个六月份发的五月份都没法
    座席:那先生您这个公积金贷款您确实是
    座席:但这个公积金贷款扣款日之前把钱存到了您的银行卡里是吗
    客户:我退我跟他们他们都给我说了
    座席:嗯
    客户:那个办理他说了他说的你不用的时候你要是五十天
    客户:我们就是那个说我说能不能办理在转弯的时候呢
    客户:他说的你不用来
    客户:啊我就是那个苑就是他直接就转了以前就是这种提醒接收卡里头
    客户:你收到的卡里头呢这个
    客户:我我再就是存进去它跟银行联系是怎么回事
    客户:直接就挂了你那个就是那个什么
    客户:就是花到你那个就是那个还款那个是里头了不用就是打你你寄过来求一笔
    客户:然后是在还五十六号也行
    客户:嗯他那个年年都不用的是他主要就是直接
    客户:就是你们就行无照那行那你说假如说
    客户:如果是这样的话那我已经找那个我打电话了
    座席:嗯嗯
    座席:嗯是
    座席:嗯您是在这个公积金管理中心这边已经把您的这个
    座席:呃代扣的这个卡已经交过去了是吧
    客户:对我找一个那个说过我说那个不用不用一下子都给自己用
    座席:嗯
    客户:你来还费四
    座席:唉麻烦嗯嗯您是什么时候办理的这个业务呢
    客户:我是去年
    座席:去年办的就是之前就是一直是正常扣款的是吧
    客户:对左右是正常嗯
    客户:使用明令没有那个也没有说是港澳我就直接
    客户:是怎么今天就是这几天就是说如果说车站孩子也不能说是六五月份的五月份就是我打打那个什么了
    座席:嗯嗯
    座席:那先生您这个就是说
    座席:您
    座席:就是
    客户:扣款日
    座席:扣款日之后就收到这个短信了吗
    客户:我不是扣款日我没办理这个业务
    座席:呃先生是这样的就是
    座席:呃这个贷款短信他是
    座席:它是由贷款行这边统一发送的不是说
    座席:这个业务或者是说您办了一份
    客户:你的电话号不可能说是那个打过去就停机吧
    客户:我以前我也是他网的打过打过也是说一个月就是直接就给我打电话我我那边打电话你那边能正常接呀嗯
    座席:嗯嗯
    座席:那先生您看您看这样可以吗因为现在也呃我这边
    座席:没有办法帮您查询
    座席:您这个六月份的贷款是否直接
    座席:扣除了
    座席:您看我姓
    座席:您看我建议您呢先查询一下是否扣费成功了
    座席:就是您
    座席:可以
    座席:六月份的这笔贷款是否扣费成功了
    座席:如果没扣费成功的话
    座席:上面这个短信提前十年的可能就是产生的逾期
    座席:如果是扣费成功的话
    座席:就说明他这个短信是错误的
    座席:对吧
    座席:后期是不应该发给您获取是他
    座席:啊中间出现了一个一个月一些差错分他到了您的手机上
    座席:是吧
    客户:是我只不过嗯是他说那我这样零四六七幺二三幺三七幺
    座席:嗯
    客户:如果说是要是就是专制是我的话呢打这个电话我可以有请问是怎么回事
    客户:他他这个号也不对呀
    座席:哎先生这边三先要保证您是否有没有逾期如果没有逾期的话
    座席:嗯
    座席:对您这边是
    座席:哪怕收到这个短信也是没有什么损失啊对吧
    客户:我现在只是你了知道吧压力
    客户:我不想要这个短息退还您了
    座席:所以先生
    座席:恩我们这边呢
    座席:如果您不想如果您
    座席:这个短信不是年的
    座席:我们这边也是可以帮您做登记反馈取消的
    客户:那你先给我搞个取消我的去查不行啊太烦人了天天这么一个说一遍的是随意打我没有用的能不能查到
    座席:请稍等
    座席:那先生
    座席:嗯这边还是建议您先查询您这个三是否扣费成功
    客户:之道肯定差距
    座席:嗯嗯
    客户:知道就是短信你们银行
    客户:可以专员了就是说确定法定地方
    客户:如果说是我错了我可以到银行去就是一遍我这个我不
    座席:可能
    客户:说在那什么
    座席:那你
    客户:你就给我取消
    客户:取笑取消之后我就查二
    客户:我跟你去查或者这能不能查的费用为短线我他们就最早的县
    座席:您不要着急我这边
    座席:您稍等一下帮您请稍等一下
    座席:啊，安旭在北京中金数据系统有限公司工作黑龙江，中国移动2016年1月4日。
    '''

    # 用户自定义词典
    CustomDictionary = JClass('com.hankcs.hanlp.dictionary.CustomDictionary')
    # CustomDictionary.add('中金数据系统有限公司', 'nt 1')
    CustomDictionary.add('中国移动', 'nt 1')

    # 用户停用词词典
    CoreStopWordDictionary = JClass(
        'com.hankcs.hanlp.dictionary.stopword.CoreStopWordDictionary')
    # CoreStopWordDictionary.add('你')
    # CoreStopWordDictionary.add('我')
    # CoreStopWordDictionary.add('您')
    # CoreStopWordDictionary.add('的')
    # CoreStopWordDictionary.add('是')
    # CoreStopWordDictionary.add('吧')

    # NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
    # segments = NLPTokenizer.segment(content)
    HanLP = JClass('com.hankcs.hanlp.HanLP')
    segment = HanLP.newSegment()
    segment.enablePlaceRecognize(True)  # 开启地名识别
    segment.enableOrganizationRecognize(True)  # 开启机构名识别
    segments = segment.seg(content)
    CoreStopWordDictionary.apply(segments)

    show(segments, '词性标注')

    result = {}
    for term in segments:
        word = term.word  # 词
        nature = term.nature.toString()  # 词性

        if not result.has_key(nature):
            result[nature] = [word]
        else:
            result[nature].append(word)

    show(result.keys())

    show(HanLP.extractKeyword(content, 5), '关键词提取')

    show(result['nr'], '实体识别-人名', True)
    show(result['ns'], '实体识别-地名', True)
    show(result['nt'], '实体识别-机构名', True)
    show(result['t'], '实体识别-时间', True)

    shutdownJVM()
